package com.uva.pgpi.sgcc.beans;

import java.io.Serializable;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable(tableName = "usuarios")
public class Usuario implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 2772611757591922453L;
	public static final String ID_USUARIO = "idUsuario";
	public static final String NOMBRE = "nombre";
	public static final String APELLIDOS = "apellidos";
	public static final String LOGIN = "login";
	public static final String PASS = "pass";
	public static final String MAIL = "mail";
	public static final String ROL = "rol";

	@DatabaseField(generatedId = true, columnName = ID_USUARIO)
	private int idUsuario;

	@DatabaseField(columnName = LOGIN, unique = true)
	private String login;

	@DatabaseField(columnName = NOMBRE, canBeNull = false)
	private String nombre;

	@DatabaseField(columnName = APELLIDOS, canBeNull = false)
	private String apellidos;

	@DatabaseField(columnName = PASS, canBeNull = false)
	private String pass;

	@DatabaseField(columnName = MAIL, canBeNull = false, unique = true)
	private String mail;

	@DatabaseField(canBeNull = false, foreign = true, foreignAutoRefresh = true, columnName = ROL)
	private Rol rol;

	public Usuario() {

	}

	public Usuario(String login, String nombre, String apellidos, String pass,
			String mail, Rol rol) {
		this.login = login;
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.pass = pass;
		this.mail = mail;
		this.rol = rol;
	}

	public Usuario(int id, String login, String nombre, String apellidos,
			String pass, String mail, Rol rol) {
		this.idUsuario = id;
		this.login = login;
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.pass = pass;
		this.mail = mail;
		this.rol = rol;
	}

	public int getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(int idUsuario) {
		this.idUsuario = idUsuario;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellidos() {
		return apellidos;
	}

	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	public String getMail() {
		return mail;
	}

	public void setMail(String mail) {
		this.mail = mail;
	}

	public Rol getRol() {
		return rol;
	}

	public void setRol(Rol rol) {
		this.rol = rol;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "ID: \t\t" + this.idUsuario + "\nLogin: \t\t" + this.login
				+ "\nNombre: \t" + this.nombre + " " + this.apellidos
				+ "\nEmail:\t\t" + this.mail + "\nRol:\t\t"
				+ this.rol.toString();
	}

	public static void main(String[] args) {
		System.out.println(new Usuario(34, "jossoar", "Jose", "Soares",
				"1000:X:X", "jossoar@jossoar.com", new Rol("Desarrollador"))
				.toString());
	}

}
